In general, the invention relates to data processing. In particular, the invention relates to coding data using Bose-Chaudhuri-Hocquenghem (BCH) error-correction codes.
Electronic information is increasingly being relied upon as a preferred medium for conducting business and/or personal transactions. As a result, demands for even better information storage and communication technologies are also increasing. The advances in this area of technology are apparent in telecommunication and information storage devices, where developments in throughput and storage density are allowing users to process information at much greater rates and quantities than before.
To guarantee some degree of information integrity, many communications and storage devices include error-correction technologies. Such technologies generally involve configuring information in a way that allows the information to be recoverable even when parts of the information are altered or missing. In error-correction, this process of configuring information is referred to as “encoding,” and the counterpart process of recovering information is referred to as “decoding.” Therefore, unless otherwise specified, the term “coding” will be used herein to refer to a particular way of encoding and decoding information.
In the field of error-correction codes, of particular note are BCH codes, which constitute a large class of multiple random error-correcting cyclic codes. In modern day applications, BCH codes are used in information storage and retrieval, communications systems, and many other areas. Despite their algorithmic effectiveness, the suitability of BCH codes in these and other applications may be limited by practical considerations. The computational steps involved in BCH encoding and decoding are relatively complex, and practical issues generally concern the speed and power consumption of the physical implementation of the coding algorithms. The speed of a coding system, which is affected by the system's throughput, is particularly important in applications where near real-time functionality is preferably preserved, such as cellular communication systems. Power consumption continues to be a limiting factor in the microelectronics industry's drive to produce smaller and smaller devices.
Currently, BCH coding schemes are nominally implemented exclusively in special-purpose hardware or exclusively in firmware. Special-purpose hardware systems generally have high throughput, but consume a large quantity of power. Consequently, special-purpose hardware systems often require relatively large silicon areas, among other reasons. Firmware implementations generally operate too slowly.
Thus, neither of the two prevailing methods for implementing BCH codes sufficiently combats limitations in both speed and power consumption.